Orde in .NET
Home

Orde in .NET

Orde in .NET

.Net is een object georiënteerde omgeving waarbij functies zijn ondergebracht in klassen. Een klasse is een geheel van methoden en eigenschappen. Je kan programma’s schrijven in C# zonder ook maar een keer aan object georiënteerd te denken. Het is m.i. echter aangeraden vanaf het begin op een object georiënteerde manier te denken en te programmeren. Zelfs al heb je in het begin nog geen al te goed begrip van wat dat eigenlijk nu juist is.

Doelstelling

We gaan het object georiënteerd programmeren stap voor stap bijbrengen. We beginnen hier met één aspect van object georiënteerd programmeren: orde!

Orde in .NET

Stappenplan

  1. Maak een project in Visual Studio met de naam LerenWerkenMetCSharp. Alle oefeningen voor C# komen in dit project te staan.
  2. Klassenbestand
    1. Een nieuw .cs klassenbestand toevoegen aan je project in Visual Studio:
      1. Klik met de rechtermuisknop op de LerenWerkenMetCSharp map. In het Add New Item dialoogvenster kies je om eean klasse toe te voegen en geef die de naam Vormen.cs.
      2. Het bestand Vormen.cs wordt geopend in de code editor.
  3. Namespace
    1. Kies een betekenisvolle naam voor de namespace
    2. Er zijn verschillende manieren om de code te organiseren. De keuze moet worden gebaseerd op de afspraken binnen je team en de aard van het project waaraan je werkt. Een manier om code te organiseren is met behulp van namespaces. Namespaces passen in de volgende hiërarchie:
      • Namespace
        • Type
          • Type Leden
    3. In deze hiërarchie is de namespace optioneel. Heel veel boeken tutorials besteden weinig aandacht aan namespaces en geven voorbeelden zonder gebruik te maken van namespaces.We raden aan om konsekwent namespaces te gebruiken, net zoals .NET dat zelf doet. Je kan niets in .NET gebruiken zonder eerst de namespace te vermelden waarin het het 'ding' zit dat je nodig hebt.
    4. Wijzig de namespace in een namespace die betekenis heeft. Alle code die we gaan schrijven om C# te leren en waarbij we de console als UI gebruiken, plaatsen we in de namespace LerenWerkenMetCSharp.
    5. Elke console-applicatie heeft een program.cs bestand met daarin een klasse met de naam Program en daarin een static void Main(string[] args) methode. Deze methode is de 'entry point'. Meer info daarover op Entry Point, Wikipedia.
    6. En alhoewel dit geen verplichting is, is het een goede gewoonte om deze klasse in een namespace te zetten:
      using System;
      
      namespace LerenWerkenMetCSharp
      {
          class Program
          {
              static void Main(string[] args)
              {
                  Console.WriteLine("Hello World!");
                  Console.ReadLine();
              }
          }
      }
    7. Afspraken voor het geven van een naam aan namespace:
      1. gebruik geen onderstrepingstekens zoals _;
      2. begin de naam met een hoofdletter;
      3. als een namespace uit meer woorden is samengesteld, laat je de spaties tussen de woorden weg en begin je vanaf het tweede woord de eerste letter met een hoofdletter te schrijven. We noemen dit Pascal notatie.
  4. Klassen
    1. Een klasse declareren

      Een klasse declareer je met het sleutelwoord class. Een klasse kan velden, eigenschappen en methoden bevatten. Hier introduceren we alleen maar methoden. In programmeren 1 sprak men van functies. In OOP echter spreekt men van methoden.

      using System;
      
      namespace LerenWerkenMetCSharp
      {
          class Program
          {
              static void Main(string[] args)
              {
                  Console.WriteLine("Hello World!");
                  Console.ReadLine();
              }
          }
      }
    2. Klassennamen volgen dezelfde notatieafspraken als diegene die gelden voor namespaces.
  5. Velden in een klasse declareren
    1. Om een veld in een klasse te declareren kan je 4 zaken bepalen
      1. de naam van het veld
      2. het gevenstype
      3. het bereik of de scope
      4. static modifier
    2. Afspraken voor het geven van een naam aan velden:
      1. gebruik geen onderstrepingstekens zoals _;
      2. begin de naam met een kleine letter;
      3. als een veld uit meer woorden is samengesteld, laat je de spaties tussen de woorden weg, het eerste woord schrijf je met een kleine letter en de rest van de woorden beginnen met een hoofdletter. We noemen dit camelcasenotatie
        using System;
        
        namespace LerenWerkenMetCSharp
        {
            class Program
            {
                static private string naam;
                static public string Naam
                {
                    get { return naam; }
                    set { naam = value; }
                }
        
                static public void SayHello()
                {
                    Console.WriteLine("Hello {0}", Naam);
                }
        
                static void Main(string[] args)
                {
                    Console.WriteLine("Hello World!");
                    Naam = "Jef";
                    SayHello();
                    Console.ReadLine();
                }
            }
        }

        In dit voorbeeld geeft static aan dat het veld tot de klasse Program behoort en niet tot een instantie of een exemplaar van de klasse Program. Dit is nodig omdat de Program klasse zelf static is.

  6. Eigenschappen of properties declareren
    1. Om een property in een klasse te declareren kan je 5 zaken bepalen
      1. de naam van de eigenschap
      2. het retourgevenstype
      3. het bereik of de scope
      4. een impliciete value parameter voor de setter
      5. static modifier
    2. Eigenschapnamen volgen dezelfde notatieafspraken als diegene die gelden voor namespaces.
      using System;
      
      namespace LerenWerkenMetCSharp
      {
          class Program
          {
              static private string naam;
              static public string Naam
              {
                  get { return naam; }
                  set { naam = value; }
              }
      
              static public void SayHello()
              {
                  Console.WriteLine("Hello {0}", Naam);
              }
      
              static void Main(string[] args)
              {
                  Console.WriteLine("Hello World!");
                  Naam = "Jef";
                  SayHello();
                  Console.ReadLine();
              }
          }
      }
    3. Eigenschappen of methoden gebruiken
      1. Je kan de waarde van een veld met een property instellen:
        Naam = "Jef";
      2. Of je kan de waarde van een veld opvragen:
        Console.WriteLine("Hello {0}", Naam);
  7. Methoden
    1. Een methode in een klasse declareren
      1. Om een methode in een klasse te declareren kan je minstens 4 zaken bepalen
        1. de naam van de methode
        2. het retourgegevenstype
        3. het bereik of de scope
        4. static modifier
      2. Een methode heeft net als een functie een gegevenstype. Het gegevenstype geeft aan welk soort gegevenstype door de methode geretourneerd wordt. In ons voorbeeld is dat void, omdat de methode niets retourneert.
      3. Als je goed kijkt merk je dat de declaratie van de methode begint met het sleutelwoord public. Dit sleutelwoord bepaalt het bereik of de scope van de methode. Voorlopig beperken we ons tot twee scopes, namelijk public en private. Private wil zeggen dat de methode slechts gebruikt kan worden binnen de klasse waarin ze gedeclareerd is. Public wil zeggen dat andere klassen die methode ook kunnen aanroepen. Vermits we in ons voorbeeld de methode SayHello vanuit de Main methode willen oproepen moeten we ze als public declareren.
        using System;
        
        namespace LerenWerkenMetCSharp
        {
            class Program
            {
                static private string naam;
                static public string Naam
                {
                    get { return naam; }
                    set { naam = value; }
                }
        
                static public void SayHello()
                {
                    Console.WriteLine("Hello {0}", Naam);
                }
        
                static void Main(string[] args)
                {
                    Console.WriteLine("Hello World!");
                    Naam = "Jef";
                    SayHello();
                    Console.ReadLine();
                }
            }
        }
    2. Een methode van een klasse gebruiken
      1. Vooraleer je een reeds gedeclareerde klasse kan gebruiken moet je er eerst een instantie van maken. Je instantieert een klasse met het sleutelwoord new. Als je een instantie - ook wel exemplaar of object genoemd - hebt, kan je de publieke methoden ervan oproepen. Later zullen we zien hoe je methoden kan oproepen zonder eerst een instantie van een klasse te maken. Maar dat is nu niet aan de orde.
      2. Methodenamen volgen dezelfde notatieafspraken als diegene die gelden voor namespaces.
      3. In ons voorbeeld roepen we de methode SayHello van de klasse MyHello op in de Main methode. De Main methode staat in het bestand Program.cs:
        using System;
        
        namespace LerenWerkenMetCSharp
        {
            class Program
            {
                static private string naam;
                static public string Naam
                {
                    get { return naam; }
                    set { naam = value; }
                }
        
                static public void SayHello()
                {
                    Console.WriteLine("Hello {0}", Naam);
                }
                static void Main(string[] args)
                {
                    Console.WriteLine("Hello World!");
                    Naam = "Jef";
                    SayHello();
                    Console.ReadLine();
                }
            }
        }
  8. Notatie afspraken
    1. Namespaces, klassen, eigeschappen en methoden
      We maken de volgende afspraken voor het geven van een naam aan namespaces, klassen en methoden
      1. gebruik geen onderstrepingstekens zoals _;
      2. begin de naam met een hoofdletter;
      3. als een klassennaam of een methode uit meer woorden is samengesteld, laat je de spaties tussen de woorden weg en begin je vanaf het tweede woord de eerste letter met een hoofdletter te schrijven. We noemen dit Pascal notatie.
    2. Velden
      1. gebruik geen onderstrepingstekens zoals _;
      2. begin de naam met een kleine letter;
      3. als een veldnaam uit meer woorden is samengesteld, laat je de spaties tussen de woorden weg en begin je vanaf het tweede woord de eerste letter met een hoofdletter te schrijven. We noemen dit Camel notatie.
  9. Bronnen
    1. Boeken
      1. Anders Hejlsberg, Scott Wiltamuth en Peter Golde, The C# Programming Language. Addison-Wesley, 2006.
      2. Charles Petzold, Applications = Code + Markup. Microsoft Press, Redmund, 2006.
      3. Jeffrey Richter, CLR via C#. Microsoft Press, Redmund, 2006.
      4. Sander Gerz, Visual C# . De basis. Pearson Addison Wesley, 2010.
      5. Mark J. Price, C# 7 and .NET Core: Modern Cross-Platform Development - Second Edition 2nd , 24 maart 2017
    2. Websites
      1. Hele mooie icons, die je op Windowsformulieren kan gebruiken, vindt je op http://www.famfamfam.com/.

JI
2018-11-24 22:09:23